/*
//遍历
int findRepeatNumber(int* nums, int numsSize){
    if(nums == NULL || numsSize < 0){
        return -1;
    }
    int arr[100000] = {0};
    for(int i = 0; i < numsSize; i++){
        if(nums[i] < 0 || nums[i] > numsSize - 1 ){  //数字都在 0～n-1 的范围
            return -1;
        }
        arr[nums[i]]++;
    }
    for(int i = 0;i < numsSize; i++){
        if(arr[i] > 1){
            return i;
        }
    }
    return -1;
}
*/


// 下标对比
static void Swap(int* a,  int* b){
    *a = *a ^ *b;
    *b = *a ^ *b;
    *a = *a ^ *b;
}

int findRepeatNumber(int* nums, int numsSize){
    if(nums == NULL || numsSize < 0){
        return -1;
    }

    for(int i = 0; i < numsSize; i++){
        while(nums[i] != i){
            int index = nums[i];
            if(nums[i] == nums[index]){
            //当数字重复出现时，该数字 num 和 nums[num] 相等。
                return nums[i];
            }
            //
            Swap(&nums[index], &nums[i]);
        }
    }
    return -1;
}




